perm filename CYCDRI.LAP[3,LMM] blob sn#038920 filedate 1973-04-22 generic text, type T, neo UTF8
(DEFPROP CYCDRIFNS (CYCDRIFNS SLOPE YINTCP CONCT CLCINTA GEQ OUTNDS SETSCALE POSLABEL POS SCALX SCALE SCALY LINE→
 XDRAW LINE2) VALUE) 

(LAP SLOPE SUBR) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (CALL 2. (E *DIF) S) 
       (POP P 2.) 
       (EXCH 1. 0. P) 
       (CALL 2. (E *DIF) S) 
       (POP P 2.) 
       (JCALL 2. (E XCONS) S) 
       NIL 

(LAP YINTCP SUBR) 
       (PUSH P 2.) 
       (PUSH P 1.) 
       (MOVE 1. 3.) 
       (PUSH P 4.) 
       (CALL 2. (E *TIMES) S) 
       (POP P 2.) 
       (PUSH P 1.) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 2. (E *DIF) S) 
       (POP P 2.) 
       (EXCH 1. 0. P) 
       (CALL 2. (E *DIF) S) 
       (POP P 2.) 
       (JCALL 2. (E XCONS) S) 
       NIL 

(LAP CONCT SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (CALL 1. (E CAAR) S) 
       (HLRZ@ 2. 2.) 
       (HLRZ@ 2. 2.) 
       (CAMN 2. 1.) 
       (JRST 0. TAG1) 
       (HLRZ@ 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (HLRZ@ 2. 0. P) 
       (HLRZ@ 2. 2.) 
       (CAMN 2. 1.) 
       (JRST 0. TAG1) 
       (HLRZ@ 1. -1. P) 
       (HLRZ@ 1. 1.) 
       (HLRZ@ 2. 0. P) 
       (HRRZ@ 2. 2.) 
       (CAMN 2. 1.) 
       (JRST 0. TAG1) 
       (HLRZ@ 1. -1. P) 
       (HRRZ@ 1. 1.) 
       (HLRZ@ 2. 0. P) 
       (HRRZ@ 2. 2.) 
       (CAMN 2. 1.) 
       (JRST 0. TAG1) 
       (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (SUB P (C 2. 0. 2. 0.)) 
       (POPJ P) 
       NIL 

(LAP CLCINTA SUBR) 
       (PUSH P 1.) 
       (HLRZ@ 1. 1.) 
       (PUSH P 2.) 
       (HRRZ@ 2. -1. P) 
       (EXCH 1. 0. P) 
       (PUSH P 3.) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. 1.) 
       (EXCH 1. -1. P) 
       (CALL 2. (E *DIF) S) 
       (MOVEM 1. -1. P) 
       (HLRZ@ 1. -2. P) 
       (HRRZ@ 2. -2. P) 
       (EXCH 1. 0. P) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 2. (E *DIF) S) 
       (POP P 2.) 
       (CALL 2. (E *TIMES) S) 
       (CALL 1. (E MINUSP) S) 
       (JUMPE 1. TAG1) 
       (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP GEQ SUBR) 
       (CALL 2. (E *LESS) S) 
       (JUMPE 1. TAG1) 
       (TDZA 1. 1.) 
 TAG1  (MOVEI 1. (QUOTE T) S) 
       (POPJ P) 
       NIL 

(LAP OUTNDS SUBR) 
       (MOVEI 4. (QUOTE 20.)) 
       (MOVEI 3. (QUOTE 10.)) 
       (MOVEI 2. (QUOTE 20.)) 
       (MOVEI 1. (QUOTE 10.)) 
       (CALL 4. (E SETSCALE) S) 
       (CALL 0. (E INITDRAW) S) 
       (MOVE 3. (SPECIAL TITLE) S) 
       (MOVEI 2. (QUOTE 13.)) 
       (MOVEI 1. (QUOTE 13.)) 
       (CALL 3. (E POSLABEL) S) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (MOVEI 1. (QUOTE 1.)) 
       (MOVEM 1. 0. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 2. (SPECIAL NMX) S) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *GREAT) S) 
       (JUMPN 1. TAG5) 
       (MOVE 1. -2. P) 
       (CALL 1. (E NODE) S) 
       (CAIN 1. (QUOTE 0.)) 
       (JRST 0. TAG4) 
       (MOVE 2. (SPECIAL LABELL) S) 
       (MOVE 1. -2. P) 
       (CALL 2. (E ASSOC2) S) 
       (HRRZ@ 1. 1.) 
       (MOVEM 1. -1. P) 
       (MOVE 1. -2. P) 
       (CALL 1. (E NODE) S) 
       (MOVEI 2. (QUOTE 20.)) 
       (PUSH P 1.) 
       (MOVE 1. -3. P) 
       (CALL 2. (E *PLUS) S) 
       (CALL 1. (E NODE) S) 
       (PUSH P 1.) 
       (MOVE 1. -3. P) 
       (JUMPE 1. TAG19) 
       (MOVE 3. 1.) 
       (JRST 0. TAG18) 
 TAG19 (MOVE 3. -4. P) 
 TAG18 (POP P 2.) 
       (POP P 1.) 
       (CALL 3. (E POSLABEL) S) 
 TAG2 
 TAG3 
 TAG4  (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG1) 
 TAG5  (SUB P (C 2. 0. 2. 0.)) 
       (MOVE 1. (SPECIAL STACK) S) 
       (CALL 1. (E LAST) S) 
       (HLRZ@ 1. 1.) 
       (PUSH P 1.) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG6  (MOVE 1. -2. P) 
       (JUMPE 1. TAG9) 
       (HLRZ@ 1. -2. P) 
       (MOVEM 1. -1. P) 
       (CALL 1. (E CADR) S) 
       (PUSH P 1.) 
       (HLRZ@ 1. -2. P) 
       (HLRZ@ 1. 1.) 
       (CALL 1. (E NODE) S) 
       (MOVEI 2. (QUOTE 20.)) 
       (PUSH P 1.) 
       (HLRZ@ 1. -3. P) 
       (HLRZ@ 1. 1.) 
       (CALL 2. (E *PLUS) S) 
       (CALL 1. (E NODE) S) 
       (PUSH P 1.) 
       (HLRZ@ 1. -4. P) 
       (HRRZ@ 1. 1.) 
       (CALL 1. (E NODE) S) 
       (MOVEI 2. (QUOTE 20.)) 
       (PUSH P 1.) 
       (HLRZ@ 1. -5. P) 
       (HRRZ@ 1. 1.) 
       (CALL 2. (E *PLUS) S) 
       (CALL 1. (E NODE) S) 
       (MOVE 5. 1.) 
       (POP P 4.) 
       (POP P 3.) 
       (POP P 2.) 
       (POP P 1.) 
       (CALL 5. (E LINE2) S) 
 TAG7 
 TAG8  (HRRZ@ 1. -2. P) 
       (MOVEM 1. -2. P) 
       (JRST 0. TAG6) 
 TAG9  (SUB P (C 3. 0. 3. 0.)) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JCALL 0. (E ENDDRAW) S) 
       NIL 

(LAP SETSCALE SUBR) 
       (PUSH P 1.) 
       (PUSH P 2.) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (CALL 1. (E MINUS) S) 
       (MOVEM 1. (SPECIAL XBOT) S) 
       (MOVE 2. -3. P) 
       (MOVE 1. -2. P) 
       (PUSH P (SPECIAL REALWIDTH) S) 
       (CALL 2. (E *DIF) S) 
       (MOVEI 2. (QUOTE 1.)) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 2. (E *QUO) S) 
       (MOVEM 1. (SPECIAL XSCL) S) 
       (MOVE 1. -1. P) 
       (CALL"1. (E MINUS) S) 
       (MOVEM 1. (SPECIAL YBOT) S) 
       (MOVE 2. -1. P) 
       (MOVE 1. 0. P) 
       (PUSH P (SPECIAL REALHEIGHT) S) 
       (CALL 2. (E *DIF) S) 
       (MOVEI 2. (QUOTE 1.)) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (CALL 2. (E *QUO) S) 
       (MOVEM 1. (SPECIAL YSCL) S) 
       (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 4. 0. 4. 0.)) 
       (POPJ P) 
       NIL 

(LAP POSLABEL SUBR) 
       (PUSH P 3.) 
       (CALL 2. (E POS) S) 
       (POP P 1.) 
       (PUSH P (SPECIAL LABELL) S) 
       (CALLF@ 1. 0. P) 
       (SUB P (C 1. 0. 1. 0.)) 
       (POPJ P) 
       NIL 

(LAP POS SUBR) 
       (PUSH P 2.) 
       (CALL 1. (E SCALX) S) 
       (EXCH 1. 0. P) 
       (CALL 1. (E SCALY) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (JCALL 2. (E AIVECT) S) 
       NIL 

(LAP SCALX SUBR) 
       (MOVE 4. (SPECIAL REALEFT) S) 
       (MOVE 3. (SPECIAL XSCL) S) 
       (MOVE 2. (SPECIAL XBOT) S) 
       (JCALL 4. (E SCALE) S) 
       NIL 

(LAP SCALE SUBR) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. -1. P) 
       (CALL 2. (E *TIMES) S) 
       (MOVEI 2. (QUOTE 0.5) S) 
       (CALL 2. (E *PLUS) S) 
       (CALL 1. (E FIX) S) 
       (POP P 2.) 
       (SUB P (C 1. 0. 1. 0.)) 
       (JCALL 2. (E *PLUS) S) 
       NIL 

(LAP SCALY SUBR) 
       (MOVE 4. (SPECIAL REALBOTTOM) S) 
       (MOVE 3. (SPECIAL YSCL) S) 
       (MOVE 2. (SPECIAL YBOT) S) 
       (JCALL 4. (E SCALE) S) 
       NIL 

(LAP LINE SUBR) 
       (PUSH P 3.) 
       (PUSH P 4.) 
       (CALL 2. (E POS) S) 
       (POP P 2.) 
       (POP P 1.) 
       (JCALL 2. (E XDRAW) S) 
       NIL 

(LAP XDRAW SUBR) 
       (PUSH P 2.) 
       (CALL 1. (E SCALX) S) 
       (EXCH 1. 0. P) 
       (CALL 1. (E SCALY) S) 
       (MOVE 2. 1.) 
       (POP P 1.) 
       (JCALL 2. (E AVECT) S) 
       NIL 

(LAP LINE2 SUBR) 
       (PUSH P 4.) 
       (MOVE 4. 5.) 
       (PUSH P 3.) 
       (MOVE 3. -1. P) 
       (PUSH P 2.) 
       (MOVE 2. -1. P) 
       (PUSH P 1.) 
       (MOVE 1. -1. P) 
       (PUSH P 5.) 
       (CALL 4. (E LINE) S) 
       (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *GREAT) S) 
       (JUMPE 1. TAG5) 
       (MOVE 2. -4. P) 
       (MOVE 1. -2. P) 
       (CALL 2. (E *DIF) S) 
       (MOVE 2. -3. P) 
       (PUSH P 1.) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *DIF) S) 
       (MOVE 2. 0. P) 
       (PUSH P 1.) 
       (MOVE 1. 2.) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. 0. P) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
       (PUSH P 1.) 
       (MOVE 1. 2.) 
       (CALL 2. (E *TIMES) S) 
       (POP P 2.) 
       (CALL 2. (E *PLUS) S) 
       (CALL 1. (E SQRT) S) 
       (MOVE 2. 1.) 
       (MOVEM 1. -1. P) 
       (MOVE 1. -3. P) 
       (PUSH P (SPECIAL EPSILON) S) 
       (CALL 2. (E *QUO) S) 
       (POP P 2.) 
       (CALL 2. (E *TIMES) S) 
       (MOVE 2. -1. P) 
       (MOVEM 1. 0. P) 
       (MOVE 1. -4. P) 
       (PUSH P (SPECIAL EPSILON) S) 
       (CALL 2. (E *QUO) S) 
       (POP P 2.) 
       (CALL 2. (E *TIMES) S) 
       (MOVEM 1. -2. P) 
       (PUSH P (C 0. 0. (QUOTE 2.) 0.)) 
       (PUSH P (C 0. 0. (QUOTE NIL) 0.)) 
 TAG1  (MOVE 2. -8. P) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *GREAT) S) 
       (JUMPN 1. TAG4) 
       (MOVE 2. -2. P) 
       (MOVE 1. -9. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. -4. P) 
       (MOVEM 1. -9. P) 
       (MOVE 1. -10. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. -2. P) 
       (MOVEM 1. -10. P) 
       (MOVE 1. -11. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 2. -4. P) 
       (MOVEM 1. -11. P) 
       (MOVE 1. -7. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVE 4. 1.) 
       (MOVE 3. -11. P) 
       (MOVE 2. -10. P) 
       (MOVEM 1. -7. P) 
       (MOVE 1. -9. P) 
       (CALL 4. (E LINE) S) 
 TAG2 
 TAG3  (MOVEI 2. (QUOTE 1.)) 
       (MOVE 1. -1. P) 
       (CALL 2. (E *PLUS) S) 
       (MOVEM 1. -1. P) 
       (JRST 0. TAG1) 
 TAG4  (MOVEI 1. (QUOTE NIL)) 
       (SUB P (C 7. 0. 7. 0.)) 
 TAG5  (SUB P (C 5. 0. 5. 0.)) 
       (POPJ P) 
       NIL